FreeVCS + Rozdeleni vyvojovych vetvi ...

Otázka od: Danik Frantik

19. 11. 2002 15:31

Zdravim,
  zaciname pouzivat FreeVCS. Chtel jsem se zeptat jak resite tuto situaci:

1) Je hotova release verze.
2) Dale se vyviji nova verze, ale je potreba zalohovat stav te realease
(resime prirazenim labelu) a pripadne v ni delat dalsi upravy.

Mozna reseni:
  1) Zazipovat zdrojaky release verze a doufat, ze nebude potreba moc uprav.
( X vzdavam se tim moznosti verzovani a zamykani ...)
  2) Udelat novy projekt a prekopirovat do nej vsechny zdrojaky ( X Databaze
neumerne narusta)
  3) Udelat novy projekt a do nej davat jen zmenene unity. ( X Narocne na
udrzbu)
  4) Vytvorit novou FreeVCS databazi a pustit dalsiho VCS klienta na jinem
portu ... ( X pri vetsim poctu udrzovanych verzi je to nerealne, nevim,
jestli to vubec pujde)
  5) Nejak pouzit branch. (Nebo to neni urceni pro tuto fci?)

Co pouzivate vy? Jde to nejak lepe?

Diky za rady,
  Danik

PS: jeste mi to shazuje konekci na timeout pri stahovani vetsich souboru
(napr. *.pdf>1MB...) pres pomalou linku. Nevite jak to resit?

Odpovedá: Karel Kral

19. 11. 2002 15:45

FreeVCS ma v nabidce Tools volbu Branch. Ale je to nedotazene - zkusil
jsem to a nelibilo se mi to. Ale na podrobnosti se bohuzel nevzpominam.

Danik Frantik wrote:
>
> Zdravim,
> zaciname pouzivat FreeVCS. Chtel jsem se zeptat jak resite tuto situaci:
>
> 1) Je hotova release verze.
> 2) Dale se vyviji nova verze, ale je potreba zalohovat stav te realease
> (resime prirazenim labelu) a pripadne v ni delat dalsi upravy.
>
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT dep. manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral@purus.cz, WWW: http://www.purus.cz
______________________________________________________

Odpovedá: Ondrej Kelle

19. 11. 2002 15:47

> Zdravim,
> zaciname pouzivat FreeVCS. Chtel jsem se zeptat jak resite
> tuto situaci:
>
> 1) Je hotova release verze.
> 2) Dale se vyviji nova verze, ale je potreba zalohovat stav
> te realease (resime prirazenim labelu) a pripadne v ni
> delat dalsi upravy.
>
> Mozna reseni:
> 1) Zazipovat zdrojaky release verze a doufat, ze nebude
> potreba moc uprav.
> ( X vzdavam se tim moznosti verzovani a zamykani ...)
> 2) Udelat novy projekt a prekopirovat do nej vsechny
> zdrojaky
> ( X Databaze neumerne narusta)
> 3) Udelat novy projekt a do nej davat jen zmenene unity.
> ( X Narocne na udrzbu)
> 4) Vytvorit novou FreeVCS databazi a pustit dalsiho VCS
> klienta na jinem portu ... ( X pri vetsim poctu udrzovanych
> verzi je to nerealne, nevim, jestli to vubec pujde)
> 5) Nejak pouzit branch. (Nebo to neni urceni pro tuto fci?)

Priznam sa, funkciu Branch som este nepouzil, mam ale pocit, ze tato
vlastnost nie je domyslena/dotiahnuta do konca. V helpe pre klienta (v
poslednej verzii 2.2.1) su popisane jej slabe stranky, help topic
"Branching
projects".

Zatial som nikdy branching nepotreboval, nemam s tym skusenosti, takze moje
nasledovne uvahy ber prosim s rezervou.

Najlepsie riesenie mi pripada nieco na sposob 2): Tzv. branch by som si
vytvoril rucne, skopirovanim celeho projektu do noveho adresara a vytvorenim
noveho projektu vo FreeVCS. Samozrejme, ak chces zmrazit sucasny stav pre
neskorsi opakovany build, je nevyhnutne podobne rozvetvit vsetky suvisiace
projekty (napr. balicky, kniznice a podobne). Snazil by som sa pritom o dve
veci: 1. aby z nazvov adresarov bolo pre kazdy projekt jasne, o ktoru vetvu
sa jedna, a 2. aby boli spravne nastavene cesty pre vsetky navzajom
suvisiace projekty. Chce to asi dobre si to vopred premysliet.
No a narastanie databazy predsa nie je ziadny problem  

Mozno to lepsie vyjadri nasledovny, velmi zjednoduseny priklad:

Hlavny projekt Project1.dpr, obsahuje Unit1.pas, Unit1.dfm a Unit2.pas.
Projekt pouziva unity LibUnit1 a LibUnit2, ktore su zaclenene do projektu
Package1.dpk. Cesty k suborom su nasledovne:

FreeVCS projekt s nazvom "Project1":
V:\Current\Projects\Project1\Project1.dpr
V:\Current\Projects\Project1\Unit1.pas, .dfm
V:\Current\Projects\Project1\Unit2.pas

FreeVCS projekt s nazvom "Lib1":
V:\Current\Library\Lib1\Package1.dpk
V:\Current\Library\Lib1\Unit1.pas
V:\Current\Library\Lib1\Unit2.pas

a po oddeleni vetvy "Zeta":

aktualne (pracovne) verzie v povodnych adresaroch, plus

novy FreeVCS projekt s nazvom "Project1 Zeta":
V:\Zeta\Projects\Project1\Project1.dpr
V:\Zeta\Projects\Project1\Unit1.pas, .dfm
V:\Zeta\Projects\Project1\Unit2.pas

novy FreeVCS projekt s nazvom "Lib1 Zeta":
V:\Zeta\Library\Lib1\Package1.dpk
V:\Zeta\Library\Lib1\Unit1.pas
V:\Zeta\Library\Lib1\Unit2.pas

Tak mozes dalej pracovat na viacerych vetvach vyvoja a pouzivat pritom VCS
na kazdej z nich. V praxi sa moze stat aj to, ze bude potrebne niektore
vetvy dalej delit na podvetvy.
Projekty v jednotlivych vetvach potrebuju mat nastavene spravne search path,
aby pouzivali iba kod z tej istej vetvy.
Tiez by som si dal zalezat na tom, aby sa vetvenie robilo iba v momente, ked
su vsetky suvisiace projekty v stabilnom stave.
Ta struktura adresarov moze vyzerat aj inak, ale podstata je v tom, aby
kazda vetva bola plne "samostatna" ako skupina projektov, aby bolo mozne ich
dalej vetvit a buildy v kazdej vetve aby boli kedykolvek spetne
reprodukovatelne.
V praxi to bude asi zlozitejsie, ale teoreticky mi to pripada ako schodna
cesta.

> PS: jeste mi to shazuje konekci na timeout pri stahovani
> vetsich souboru (napr. *.pdf>1MB...) pres pomalou linku.
> Nevite jak to resit?

Administrator ma moznost zmenit timeout z klienta v menu
Server\Administration\Server Properties.

HTH
TOndrej

Odpovedá: Danik Frantik

19. 11. 2002 17:02

>FreeVCS ma v nabidce Tools volbu Branch. Ale je to nedotazene - zkusil
>jsem to a nelibilo se mi to. Ale na podrobnosti se bohuzel nevzpominam.

>Karel Kral, vedouci odd. IT / IT dep. manager
Branch je opravdu nedotazeny. Navic FreeVCS umoznuje branch jen na top verzi
zdrojaku -> uz pri uzavreni verze musim rozhodnout, ktere unity budu moci
opravit a ktere uz ne -> na zaver to dopadne tak, ze se zalozi novy projekt
ve FreeVCS (v jinem adresari)

Mate nekdo jiny napad?

Diky, hezky den,
  Danik

Odpovedá: Petr Fejfar

20. 11. 2002 5:12

From: "Danik Frantik" <frantik@telpro.cz>

> 1) Je hotova release verze.
> 2) Dale se vyviji nova verze,
> ale je potreba zalohovat stav te realease
> (resime prirazenim labelu)
> a pripadne v ni delat dalsi upravy.

My pouzivame nasledujici proceduru:

* FVCS provozujeme nad IB
* kazdy den vytvarime pomoci GBAK soubor
  yyyymmdd_hhnn.gbk, ktery zalohujeme
* V pripade release si prejmenujeme odpovidajici
  soubor *.gbk tak, ze pripojime verzi napr.
  yyyymmdd_hhnn_aiirrr.gbk
* pokud potrebujeme opravit neco fatalniho
  (nic noveho nevyvijime), prohodime
  *.gbk soubory z archivu
* vsechny zmeny promitneme pomoci nejake merge utility
  take do posledni verze
* udelame si zalohu *.gbk pro dalsi release
* jakmile mame stabilnejsi novou verzi, prechazime
  na ni


HTH, pf